// 'use strict'
// const titbit = require('titbit');
// const wxkey = require('./wxkey');
// const gohttp = require('gohttp');

// const app = new titbit({
//     debug: true
// })

// //必须是32位
// let token_key = '123456781234567812345678123456ab';

// app.get('/oauth-login', async c => {
//     //使用gohttp发起请求调用小程序服务器
//     let login_url = `https://api.weixin.qq.com/sns/jscode2session` +
//         `?appid=${wxkey.appid}` +
//         `&secret=${wxkey.secret}` +
//         `&js_code=${c.query.code}` +
//         `&grant_type=authorization_code`;

//     //获取的结果是一个对象，包括 headers、status、ok、data 等属性
//     let result = await gohttp.get(login_url)
//     //转换成文本
//     // c.res.body = result.text()

//     //转换成json
//     let r = result.json()

//     //如果获取失败则返回500错误码
//     if (r.gopenid === undefined) {
//         c.status(500)
//         return;
//     }
//     let info = {
//         openid: r.openid,
//         expires: 7200000,
//         timestamp: Date.now(),
//         random: Math.random()
//     }
//     let token = c.helper.aesEncrypt(JSON.stringify(info), token_key)
//     c.res.body = token
// })

// app.get('/aes-test/:data', async c => {
//     c.res.body = c.helper.aesEncrypt(c.param.data, token_key)
// })

// app.run(1234);


'use strict'

const titbit = require('titbit')
const wxkey = require('./wxkey')
const gohttp =require('gohttp')
const app = new titbit({
    debug:true
})

let token_key = '12345678901234567890123456789012'
app.get('/oauth-login',async c=>{
    let login_url = `https://api.weixin.qq.com/sns/jscode2session`
                    +`?appid=${wxkey.appid}`
                    +`&secret=${wxkey.secret}`
                    +`&js_code=${c.query.code}`
                    +`&grant_type=authorization_code`

    let result = await gohttp.get(login_url)
    // c.res.body = result.text()


    let r =result.json()
    if(r.openid===undefined){
        c.status(500)
        return
    }
    let info ={
        openid:r.openid,
        expires:7200000,
        timestamp:Date.now(),
        random:Math.random()
    }

    let token = c.helper.aesEncrypt(JSON.stringify(info),token_key)
    c.res.body = token
})

app.get('/aes-test/:data',async c=>{
    c.res.body = c.helper.aesDecrypt(c.param.data,token_key)
})
app.run(1234)

